
<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js"><!--<![endif]-->
<head>
  <meta charset="utf-8">
  <title>
    
  version-control - LZH-DEV-TECH-SHARE
  

  </title>
  <meta name="author" content="">
  <meta name="description" content="">

  <meta name="HandheldFriendly" content="True">
  <meta name="MobileOptimized" content="320">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  
  <link href="asset/css/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
  <link href="atom.xml" rel="alternate" title="LZH-DEV-TECH-SHARE" type="application/atom+xml">
  <script src="asset/js/modernizr-2.0.js"></script>
  <script src="asset/js/jquery.min.js"></script>
  <script src="asset/highlightjs/highlight.pack.js"></script>
  <link href="asset/highlightjs/styles/solarized_light.css" media="screen, projection" rel="stylesheet" type="text/css">
  <script>hljs.initHighlightingOnLoad();</script>

  <style type="text/css">
  .cat-children-p{ padding: 6px 0px;}
  .hljs{background: none;}
  </style>
  <script type="text/javascript">
  var isAddSildbar = true;
  </script>
  <script src="asset/js/octopress.js" type="text/javascript"></script>
</head>
<script type="text/javascript">
//链接新开窗口
function addBlankTargetForLinks () {
  $('a[href^="http"]').each(function(){
      $(this).attr('target', '_blank');
  });
}
$(document).ready(function(event) {
  addBlankTargetForLinks();
});
</script>
<body   >
  <header role="banner"><hgroup>
  <h1><a href="index.html">LZH-DEV-TECH-SHARE</a></h1>
  
    <h2></h2>
  
</hgroup>

</header>
  <nav role="navigation"><ul class="subscription" data-subscription="rss">
  <li><a href="atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
  
</ul>
  
<form action="http://google.com/search" method="get">
  <fieldset role="search">
    <input type="hidden" name="q" value="site:" />
    <input class="search" type="text" name="q" results="0" placeholder="Search"/>
  </fieldset>
</form>
  
<ul class="main-navigation">

  <li id=""><a target="self" href="index.html">Home</a></li>

  <li id=""><a target="_self" href="archives.html">Archives</a></li>

</ul>

</nav>
  <div id="main">
    <div id="content"> 
<div class="blog-index">

	<article>
		 <header>
		  	<h1 class="entry-title"><a href="15404694150903.html">mac终端下svn常用命令</a></h1>
			<p class="meta"><time datetime="2018-10-25T20:10:15+08:00" 
			pubdate data-updated="true">2018/10/25</time></p>
		 </header>
	  	<div class="entry-content">
		  	
		  	<ul>
<li>
<a href="#toc_0">将文件checkout到本地目录</a>
</li>
<li>
<a href="#toc_1">往版本库中添加新的文件</a>
</li>
<li>
<a href="#toc_2">将改动的文件提交到版本库</a>
</li>
<li>
<a href="#toc_3">加锁/解锁</a>
</li>
<li>
<a href="#toc_4">更新到某个版本</a>
</li>
<li>
<a href="#toc_5">查看文件或者目录状态</a>
</li>
<li>
<a href="#toc_6">删除文件</a>
</li>
<li>
<a href="#toc_7">查看日志</a>
</li>
<li>
<a href="#toc_8">查看文件详细信息</a>
</li>
<li>
<a href="#toc_9">比较差异</a>
</li>
<li>
<a href="#toc_10">将两个版本之间的差异合并到当前文件</a>
</li>
<li>
<a href="#toc_11">SVN 帮助</a>
</li>
<li>
<a href="#toc_12">版本库下的文件和目录列表</a>
</li>
<li>
<a href="#toc_13">创建纳入版本控制下的新目录</a>
</li>
<li>
<a href="#toc_14">恢复本地修改</a>
</li>
<li>
<a href="#toc_15">代码库URL变更</a>
</li>
<li>
<a href="#toc_16">解决冲突</a>
</li>
</ul>


<p>以下是一些常用命令</p>

<h3 id="toc_0">将文件checkout到本地目录</h3>

<pre><code class="language-shell">$ svn checkout path（path是服务器上的目录）
例如：
$ svn checkout svn://192.168.1.1/pro/domain
简写：
$ svn co
</code></pre>

<h3 id="toc_1">往版本库中添加新的文件</h3>

<pre><code class="language-shell">$ svn add file
例如：
$ svn add test.php(添加test.php)
$ svn add *.php(添加当前目录下所有的php文件)
</code></pre>

<h3 id="toc_2">将改动的文件提交到版本库</h3>

<pre><code class="language-shell">$ svn commit -m “LogMessage“ [-N] [--no-unlock] PATH　　　　　　　　(如果选择了保持锁，就使用–no-unlock开关)
例如：
$ svn commit -m “add test file for my test“ test.php
简写：
$ svn ci
</code></pre>

<h3 id="toc_3">加锁/解锁</h3>

<pre><code class="language-shell">$ svn lock -m “LockMessage“ [--force] PATH
例如：
$ svn lock -m “lock test file“ test.php
$ svn unlock PATH
</code></pre>

<h3 id="toc_4">更新到某个版本</h3>

<pre><code class="language-shell">$ svn update -r m path
例如：
$ svn update 如果后面没有目录，默认将当前目录以及子目录下的所有文件都更新到最新版本。
$ svn update -r 200 test.php (将版本库中的文件test.php还原到版本200)
$ svn update test.php (更新，于版本库同步。如果在提交的时候提示过期的话，是因为冲突，需要先update，修改文件，然后清除svn resolved，最后再提交commit)
简写：
$ svn up
</code></pre>

<h3 id="toc_5">查看文件或者目录状态</h3>

<pre><code class="language-shell">$ svn status path
（目录下的文件和子目录的状态，正常状态不显示）
【?：不在svn的控制中；M：内容被修改；C：发生冲突；A：预定加入到版本库；K：被锁定】
$ svn status -v path
 (显示文件和子目录状态)
第一列保持相同，第二列显示工作版本号，第三和第四列显示最后一次修改的版本号和修改人。
注：
$ svn status
$ svn diff
$ svn revert
这三条命令在没有网络的情况下也可以执行的，原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写：
$ svn st
</code></pre>

<h3 id="toc_6">删除文件</h3>

<pre><code class="language-shell">$ svn delete path -m “delete test fle“
例如：
$ svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接
$ svn delete test.php 
然后再 
$ svn ci -m ‘delete test file‘，推荐使用这种
简写：
$ svn (del, remove, rm)
</code></pre>

<h3 id="toc_7">查看日志</h3>

<pre><code class="language-shell">$ svn log path
例如：
$ svn log test.php 显示这个文件的所有修改记录，及其版本号的变化
</code></pre>

<h3 id="toc_8">查看文件详细信息</h3>

<pre><code class="language-shell">$ svn info path
例如：
$ svn info test.php
</code></pre>

<h3 id="toc_9">比较差异</h3>

<pre><code class="language-shell">$ svn diff path(将修改的文件与基础版本比较)
例如：
$ svn diff test.php
$ svn diff -r m:n path(对版本m和版本n比较差异)
例如：
$ svn diff -r 200:201 test.php
简写：
$ svn di
</code></pre>

<h3 id="toc_10">将两个版本之间的差异合并到当前文件</h3>

<pre><code class="language-shell">$ svn merge -r m:n path
例如：
$ svn merge -r 200:205 test.php（将版本200与205之间的差异合并到当前文件，但是一般都会产生冲突，需要处理一下）
</code></pre>

<h3 id="toc_11">SVN 帮助</h3>

<pre><code class="language-shell">$ svn help
$ svn help ci
</code></pre>

<h3 id="toc_12">版本库下的文件和目录列表</h3>

<pre><code class="language-shell">$ svn list path
显示path目录下的所有属于版本库的文件和目录
简写：
$ svn ls
</code></pre>

<h3 id="toc_13">创建纳入版本控制下的新目录</h3>

<pre><code class="language-shell">$ svn mkdir: 创建纳入版本控制下的新目录。
用法: 
$ svn mkdir PATH
$ svn mkdir URL
创建版本控制的目录。
1. 每一个以工作副本 PATH 指定的目录，都会创建在本地端，并且加入新增
调度，以待下一次的提交。
2. 每个以URL指定的目录，都会透过立即提交于仓库中创建。
在这两个情况下，所有的中间目录都必须事先存在
</code></pre>

<h3 id="toc_14">恢复本地修改</h3>

<pre><code class="language-shell">$ svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。
revert:
用法: 
revert PATH
注意: 本子命令不会存取网络，并且会解除冲突的状况。但是它不会恢复被删除的目录
</code></pre>

<h3 id="toc_15">代码库URL变更</h3>

<pre><code class="language-shell"> $ svn switch (sw): 更新工作副本至不同的URL。
 用法: 
 switch URL [PATH]
 switch –relocate FROM TO [PATH...]
   
1、更新你的工作副本，映射到一个新的URL，其行为跟“svn update”很像，也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。
2、改写工作副本的URL元数据，以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动)，但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。
</code></pre>

<h3 id="toc_16">解决冲突</h3>

<pre><code class="language-shell">$ svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: resolved PATH…
注意: 本子命令不会依语法来解决冲突或是移除冲突标记；它只是移除冲突的相关文件，然后让 PATH 可以再次提交。
</code></pre>


		</div>

		

	</article>
  
	<div class="pagination">
	
<a href="archives.html">Blog Archives</a>
	 
	    
	</div>
</div>
 <aside class="sidebar"> 

	<section>
	  <h1>Categories</h1>
	  <ul id="recent_posts">
	  
	      <li class="post">
	        <a href="version-control.html"><strong>version-control&nbsp;(2)</strong></a>
	        
	        
	        
	      </li>
	  
	      <li class="post">
	        <a href="shell.html"><strong>shell&nbsp;(1)</strong></a>
	        
	        
	        
	      </li>
	  
	      <li class="post">
	        <a href="back-end.html"><strong>back-end&nbsp;(4)</strong></a>
	        
	        
	        
	      </li>
	  
	      <li class="post">
	        <a href="front-end.html"><strong>front-end&nbsp;(5)</strong></a>
	        
	        
	        
	      </li>
	  
	      <li class="post">
	        <a href="version-control-1.html"><strong>version-control&nbsp;(1)</strong></a>
	        
	        
	        
	      </li>
	  
	      <li class="post">
	        <a href="other.html"><strong>other&nbsp;(2)</strong></a>
	        
	        
	        
	      </li>
	   
	  </ul>
	</section>
	<section>
	  <h1>Recent Posts</h1>
	  <ul id="recent_posts">
	  
	      
		      <li class="post">
		        <a href="15413898294420.html">RESTful API 最佳实践</a>
		      </li>
	     
	  
	      
		      <li class="post">
		        <a href="15411425055347.html">LZH-DEV-GROUP Git Workflow 实践详解</a>
		      </li>
	     
	  
	      
		      <li class="post">
		        <a href="15410718240579.html">如何使用PM2进程管理器, 守护java进程</a>
		      </li>
	     
	  
	      
		      <li class="post">
		        <a href="15408811446857.html">一篇文章搞定 centos7 上的 mysql 安装</a>
		      </li>
	     
	  
	      
		      <li class="post">
		        <a href="15408703788547.html">一篇文章搞定 centos7 下安装 nvm和node</a>
		      </li>
	     
	  
	      
	  
	      
	  
	      
	  
	      
	  
	      
	  
	      
	  
	      
	  
	      
	  
	      
	  
	      
	   
	  </ul>
	</section>
	
</aside> </div></div>
  <footer role="contentinfo"><p>
  Copyright &copy; 2014 -  -
  <span class="credit">Powered by <a target="_blank" href="http://www.mweb.im">MWeb</a> &nbsp;&nbsp; Theme by <a href="http://octopress.org">Octopress</a></span>
</p>

</footer>

  
    




</body>
</html>